/**
 * 应用系统
 * @author Stone
 * @type {{init(): void, domIni(), dateTableIni(): void, addObject(), editObject: applicationSystem.editObject, deleteObject(): void, onOff(*=, *=): void}}
 */
let applicationSystem = {

    init(){
        this.domIni();
        this.dateTableIni();
        this.addObject();
        this.editObject();
        this.deleteObject();
    },
    /**
     * 特殊dom初始化
     */
    domIni(){

    },
    /**
     * 表格数据初始化
     */
    dateTableIni(){
        $('#theDataTable').bootstrapTable('destroy');
        $('#theDataTable').bootstrapTable({
            url: $.contextPath() + '/api/application/list',                               //请求后台的URL（*）
            method: 'get',                                 //请求方式（*）
            toolbar: '#tableToolbar',                    //工具按钮用哪个容器
            striped: true,                                  //是否显示行间隔色
            cache: false,                                   //是否使用缓存，默认为true，所以一般情况下需要设置一下这个属性（*）
            contentType: 'application/x-www-form-urlencoded',
            pagination: true,                                //是否显示分页（*）
            sortable: false,                                 //是否启用排序
            sortOrder: "asc",                                 //排序方式
            //search: true,                                     //是否显示表格搜索，此搜索是客户端搜索，不会进服务端，所以，个人感觉意义不大
            //strictSearch: true,
            singleSelect: true,                               //禁止多选
            // formatSearch:function(){
            //     return '查询条件';
            // },
            showRefresh: true,                                //是否显示所有的列
            showColumns: true,                                //是否显示刷新按钮
            detailFormatter: true,
            minimumCountColumns: 3,                           //最少允许的列数
            sidePagination: "server",                          //分页方式：client客户端分页，server服务端分页（*）
            queryParamsType: 'aaa',                           // undefined
            clickToSelect: true,                              //是否启用点击选中行

            queryParams: params => {                  //查询传递参数（*）
                var object = new Object();
                object.pageNum = params.pageNumber;
                object.pageSize = params.pageSize;
                object.name = $("#name").val();
                return object;
            },
            // rowStyle : function(row,index){
            //     return {css:{"cursor":"pointer"}};
            // },
            idField: 'id',                                      //指定主键列
            pageNumber: 1,                                      //初始化加载第一页，默认第一页
            pageSize: 10,                                       //每页的记录行数（*）
            pageList: [10, 25, 50, 100],                        //可供选择的每页的行数（*）
            checkboxHeader: false,
            columns: [
                {
                    radio: true
                },
                {
                    title: '序号',
                    formatter: (value, row, index) => {
                        var options = $("#theDataTable").bootstrapTable('getOptions');
                        return (options.pageNumber - 1) * options.pageSize + index + 1;
                    }
                },
                {
                    field: 'name',
                    title: '系统名称'
                },
                {
                    field: 'url',
                    title: '系统地址'
                }, {
                    field: 'onOff',
                    title: '状态',
                    formatter: (value, row, index) => {
                        if ('0' == value) {
                            return '<a href="javascript:void(0);" onclick="applicationSystem.onOff(\'' + row.id + '\',\'' + value + '\')" title="点击禁用"><i class="fa fa-toggle-on fa-2x" style="color: green;" aria-hidden="true"></i></a>';
                        } else {
                            return '<a href="javascript:void(0);" onclick="applicationSystem.onOff(\'' + row.id + '\',\'' + value + '\')" title="点击启用"><i class="fa fa-toggle-off fa-2x" style="color: red;" aria-hidden="true"></i></a>';
                        }
                    }

                }, {
                    field: 'createBy',
                    title: '创建人'

                }, {
                    field: 'createOn',
                    title: '创建时间',
                    formatter: (value, row, index) => {
                        return (new Date(value)).Format("yyyy-MM-dd");
                    }
                }]
        });
    },
    /**
     * 新增对象
     */
    addObject(){

    },
    /**
     * 编辑对象
     */
    editObject(){
        $('#editBtn').on('click', () => {
            alert('aaa');
            let selectRow = $('#theDataTable').bootstrapTable('getSelections')[0];
            if (typeof(selectRow) == 'undefined') {
                $.showInfo("请先选择一条要修改的记录！");
                return false;
            }
        });
    },
    /**
     * 删除对象
     */
    deleteObject(){
        $('#deleteBtn').on('click',() => {
            let selectRow = $('#theDataTable').bootstrapTable('getSelections')[0];
            if (typeof(selectRow) == 'undefined') {
                $.showInfo("请先选择一条要删除的记录！");
                return false;
            }
        });
    },
    /**
     * 启用禁用
     * @param id
     * @param theCurrentStatus
     */
    onOff(id, theCurrentStatus){
        alert(id);
        alert(theCurrentStatus);
    }
}
$(
    applicationSystem.init()
)